home *** CD-ROM | disk | FTP | other *** search
/ Commodore Free 25 / Commodore_Free_Issue_25_2008_Commodore_Computer_Club.d64 / t.b guide 10.2 < prev    next >
Text File  |  2023-02-26  |  12KB  |  437 lines

  1. u
  2.  
  3. In the Beginning Chapter 10, Section 2
  4. \Lord Ronin from Q-Link\
  5. -------------------------
  6.  
  7. Here is where problems happen, I have
  8. seen it and done it myself. As you
  9. take another look at that thing I made
  10. above. You can see that where there is
  11. a 0 in the boxes under the numbers.
  12. Then on the bottom row you put a 0. If
  13. there is a 1 in the box, then you put
  14. down the value of that box. Repeat for
  15. the entire series. That is why under
  16. the 64 there is a 1 in the box, and on
  17. the bottom line there is a 64. Some of
  18. us have wondered why the extra step.
  19. Well when doing this off of paper. One
  20. can make mistakes by skipping that
  21. last step, like I said, seen it and
  22. done it.
  23.  
  24. OK as that bottom line shows you add
  25. up the numbers. This becomes just one
  26. number. In this example it becomes the
  27. number of 127. Trying not to confuse
  28. you here, if there was a 1 in each of
  29. the boxes, the total would be 255. Hey
  30. have we seen that number before?
  31. Yuppers and we will see it over again
  32. many more times. Just keeps popping up
  33. a lot. <G>
  34.  
  35. So then in the example from the book,
  36. the first series had nothing in the
  37. first row. The second series had the
  38. stuff we saw above. The third series
  39. has nothing on that row. How is this
  40. written for the program? Remember I
  41. said a while back about writing the
  42. word Data at the end of the row? This
  43. is why it works nice that way, you see
  44. the way to write it down for this part
  45. is
  46.  
  47. DATA 0, 127, 0
  48.  
  49. Based on the example above. Nothing in
  50. the first series, 127 is the total for
  51. the second series and 0 is the amount
  52. for the third series, as there was
  53. nothing on the row in that part. In
  54. order to further this example and
  55. idea. Book goes into the entire second
  56. line of the balloon illustration.
  57.  
  58. ulow is sort of what it looks like in
  59. the book.
  60.  
  61.  
  62. +----+----+----+----+----+----+---+---+
  63.   Series 1:
  64.    0    0    0    0    0   0    0   1 
  65. +----+----+----+----+----+----+---+---+
  66.                                     ^
  67.   =  1
  68.  
  69. +---+----+----+----+----+----+---+----+
  70.   Series 2:
  71.    1   1    1    1    1    1   1   1
  72.  
  73. +---+----+----+----+----+----+---+----+
  74.    ^   ^    ^    ^    ^    ^    ^    ^
  75.  
  76.  128 + 64 + 32 + 16 + 8  + 4  + 2  + 1 
  77. +---+----+----+----+----+----+---+----+
  78.  
  79.   = 255
  80.  
  81.   Series 3:
  82.   1    1    0    0    0   0    0    0 
  83. +---+----+----+----+----+----+---+----+
  84.   ^    ^
  85.  
  86.  128 + 64
  87.  
  88.   =  192
  89.  
  90.   For row 2, the data would be:
  91.  
  92.    DATA 1, 255, 192
  93.  
  94. Yeah I know that it looks complicated.
  95. But by the time you have done a couple
  96. of these lines. You get the message
  97. that is being applied, granted that
  98. there are 21 lines to do of three
  99. series each. I cheat and use a
  100. calculator. Mind isn't what it used to
  101. be decades ago.
  102.  
  103. You should be able to see how to count
  104. the series, how to present the chart
  105. where you see what is in each of the
  106. slots from 128 to 1. Also how to do
  107. the math for adding and then how to
  108. write that data line. I've seen <and
  109. done> the math to the point where all
  110. the separate three part series were
  111. added up, making it the total for the
  112. line. This doesn't work worth a smeg.
  113. Frells your programme, like you can't
  114. believe. Next thing is to type in the
  115. balloon program and we will go over
  116. the parts.
  117.  
  118. So type:
  119. NEW
  120. Press RETURN then enter
  121.  
  122. 1 REM UP, UP, AND AWAY
  123. 5 PRINT "(CLR/HOME)"
  124. 10 V = 53248 : REM START OF DISPLAY
  125.  CHIP
  126. 11 POKE V + 21,4 : REM ENABLE SPRITE 2
  127. 12 POKE 2042,13 : REM SPRITE 2 DATA
  128.  FROM BLOCK 13
  129. 20 FOR N = 0 TO 62:READ Q:POKE 832+N,Q:
  130.  NEXT
  131. 30 FOR X = 0 TO 200
  132. 40 POKE V + 4,X : REM UPDATE X
  133.  COORDINATES
  134. 50 POKE V + 5,X : REM UPDATE Y
  135.  COORDINATES
  136. 60 NEXT X
  137. 70 GOTO 30
  138. 200 DATA 0,127,0,1,255,192,3,255,224,
  139.  3,231,224
  140. 210 DATA 7,217,240,7,223,240,7,217,240,
  141.  3,231,224
  142. 220 DATA 3,255,224,3,255,224,2,255,160,
  143.  1,127,64
  144. 230 DATA 1,62,64,0,156,128,0,156,128,0,
  145.  73,0,0,73,0
  146. 240 DATA 0,62,0,0,62,0,0,62,0,0,28,0
  147.  
  148. Book says "if you typed everything in
  149. correctly" That is an understatement,
  150. I had to type it in a few times and
  151. even now I am not certain I did it
  152. right for you (EDITOR yep its fine).
  153. Then you typed it in and we have more
  154. places that things could go wrong, did
  155. a piece on the pitfalls of type in
  156. programs. DATA statements are one of
  157. them that can frell you, I already
  158. mentioned fonts elsewhere.
  159.  
  160. Taking that into consideration. If I
  161. typed it in here right, and I did test
  162. and run it before writing the lines
  163. down, rare thing for me to do <BG> If
  164. you typed it correctly from what I
  165. did, then there is a small green hot
  166. air balloon that goes from the upper
  167. left of the screen towards the lower
  168. right. Doesn't make it all the way
  169. though so if that is what you see. You
  170. typed it in right, at this time that
  171. balloon won't go across the screen, to
  172. the other side.
  173.  
  174. I'm not great enough to tell you how
  175. all of the things and this program
  176. work. In fact those that are clever
  177. enough to know all of these parts,
  178. can't seem to explain it to me easily,
  179. so I guess that makes us both in the
  180. same boat. What I can tell you is only
  181. a few things. Some of that is a
  182. constant refresher on stuff we have
  183. done before.
  184.  
  185. Line 1 and line 5 we have done before.
  186. A REMark and then clear the screen
  187.  
  188. Line 10, now this is a new thing for
  189. us, The book doesn't go into a lot of
  190. information. Not supposed to, just a
  191. primer to wet your appetite about
  192. sprites. Or for many of us, confuse
  193. the smeg out of us. <G> Well v=53248
  194. is obviously a variable. The Rem
  195. statement says it is the start of the
  196. display chip. I have heard that also
  197. called the VIC chip. 53248 is the
  198. starting memory location of the
  199. "v"ideo chip hence the V for the
  200. variable name. Notice how close that
  201. number is to the 53280 and 53281 the
  202. locations that we used for border and
  203. screen colour changes?
  204.  
  205. The book takes us to the following
  206. chart thing. In an attempt to explain
  207. the "picture making locations control
  208. the functions..." Called registers,
  209. these locations in their chart look
  210. like...
  211.  
  212.   Register(s)   Description
  213.  
  214.    0          X coordinate of sprite 0
  215.    1          Y coordinate of sprite 0
  216.    2 - 15     Paired like 0 and 1
  217.                for sprites 1-7
  218.   16          Most Significant Bit
  219.                - X coordinate
  220.   21          Sprite appear: 1 = appear
  221.                0 = disappear
  222.   29          Expand sprite in "X"
  223.                Direction
  224.   23          Expand sprite in "Y"
  225.                Direction
  226.   39-46       Sprite 0-7 color
  227.  
  228. If you see that 23 comes after the 29,
  229. you are right, that is the way it is
  230. listed in the book. I don't know if it
  231. is a book typo or not. Some of the
  232. above may make a little sense to you.
  233. Most of it may not and it also may
  234. seem so alien that you feel you will
  235. never understand it. Many - many of my
  236. members have felt the same thing. A
  237. few have gone past that and made
  238. sprites on their own. I'll tell you
  239. truthfully that they had to have
  240. programs and other informational
  241. sources to complete the task. Also it
  242. is not the scope here to explain about
  243. sprites. Only to present the
  244. information in a personal way from the
  245. book you would have received when you
  246. bought the C=64 new. This book I was
  247. told is online in some form of an
  248. e-text someplace.
  249.  
  250. EDITOR you can see the book online in
  251. HTML format here
  252.  http://www.lemon64.com/manual/
  253. And here as a downloadable plain TEXT
  254. file
  255. http://project64.c64.org/hw/
  256.   c64usg10.zip
  257.  
  258. Disclaimer again, out of the way. I
  259. quote from the book for the next part.
  260. "In addition to this information you
  261. will need to know from which 64 byte
  262. section sprites will get their data
  263. (byte 1 is not used)."
  264.  
  265. "This data is handled by 8 locations
  266. directly after screen memory:" There
  267. is another chart/box that follows.
  268.  
  269. +---+----+----+----+----+----+----+---+
  270.  
  271. 2040 2041 2042 2043 2044 2045 2046 2047
  272.  
  273. +---+----+----+----+----+----+----+---+
  274.  ^    ^    ^    ^    ^    ^    ^    ^
  275.  
  276. SPRITE #
  277.  
  278.  0    1    2    3    4    5    6    7
  279.  
  280. As you can see there are 8 sprite
  281. places in the chart above. Also I'll
  282. point out, that this start number of
  283. 2040 is very close to the end of the
  284. Screen Memory Map locations. Anyway
  285. back to the book. Here they next list
  286. the things to create and move the
  287. sprite. [1] is to make the proper
  288. sprite(s) appear on the screen. This
  289. is done "by pokeing into location 21 a
  290. 1 for the bit which turns on the
  291. sprite"
  292.  
  293. Looking back at the program. We can
  294. see this in line 11 where it is poke
  295. v, the 53248 location with that +21
  296. final location.
  297.  
  298. [2] set the sprite pointer, that is
  299. locations 2040-2047 "to where the
  300. sprite data should be read from." We
  301. see that number appear in line 12.
  302. Along with a REM about it being sprite
  303. 2 and the 13th blk.
  304.  
  305. [3] is to poke the data into memory. I
  306. take that to be all those data
  307. statements.
  308.  
  309. [4] is using a loop to update X & Y
  310. coordinates to move the sprite around.
  311. Which to my lame brain looks like
  312. lines 30-70. Last part,
  313.  
  314. [5] states that you can as options,
  315. expand the object, change the colours
  316. and do other functions using location
  317. 29 to expand sprite in the X direction
  318. and location 23 in the Y direction. As
  319. their example.
  320.  
  321. Breaking here for a moment, we will
  322. get back to the sprite stuff, even if
  323. we need to go to the next instalment.
  324. <BG> READ DATA is an important part of
  325. the program here and also in other
  326. programs. I have seen numbers and text
  327. used in these read data lines. There
  328. is a menu for fantasy games at the
  329. tavern that uses the text as the data
  330. part. I'll leave off on that for now,
  331. only wanted to bring the idea to
  332. light.
  333.  
  334. At line 10 we basically fired up the
  335. video chip for this programme with the
  336. variable v=53248.
  337.  
  338. line 11 we poked into the v variable
  339. that +21. Looking back at that
  340. register and description chart above,
  341. that says we make the sprite appear.
  342. OK then what the frell does that ,4
  343. mean? Took me a bit to barely
  344. understand it. Because the next
  345. sentence in the book says that this ,4
  346. thing turns on sprite #2. Into
  347. something that is called the "sprite
  348. enable register. Remember there are 8
  349. sprites. Got another chart to present
  350. and I'll try to explain it in a way
  351. that makes sense.
  352.  
  353. SPRITE ENABLE (LOCATION 21)
  354.  
  355. Decimal Values of Each Sprite Number
  356.   128  64   32   16   8    4    2    1
  357.  
  358. Sprite Level Numbers
  359.   7    6    5    4    3    2    1    0
  360.  
  361. +----+----+----+---+----+----+----+---+
  362.  
  363.   0    0    0    0    0    1    0    0
  364.  
  365. +----+----+----+---+----+----+----+---+
  366.                            ^
  367.  
  368. Put a 1 For The SPRITE You Want
  369.  
  370. Looks sort of familiar to others that
  371. I have made in this series <G>. What
  372. does it all mean? I coded it a bit to
  373. help. (a) is the decimal value of each
  374. sprite number. Looks familiar to what
  375. we did with the drawing and converting
  376. of the sprite to DATA. (b) is simply
  377. the sprite level number. 7 is under
  378. the 128 as it is the highest number in
  379. the sprites.
  380.  
  381. OK that 21 at the left of the line of
  382. boxes. That is the 21 part of the
  383. "v+21". Turned on the chip and that 21
  384. says to make the sprite appear. which
  385. of the 8 sprites? Here they chose
  386. sprite #2. As you can see there is a 1
  387. in that box, under the 2. While there
  388. are 0's under the other numbers.
  389. Confusing part for many of my members
  390. is remembering that in this example
  391. the 1 indicates that there is
  392. something there, the 2 is the sprite
  393. number, BUT 4 is the value to use.
  394. That is why there is that =4. Meaning
  395. that v is the variable for the chip
  396. being turned on, 21 is the sprite
  397. shows up thing and the 4 is the value
  398. for the 2nd sprite. Reads as v+21,4.
  399. Yeah it takes a few times through to
  400. catch all of that and feel just a tad
  401. bit comfy.
  402.  
  403. OK you are wondering if there are 8
  404. sprites. Then how would you activate
  405. more than one. Since this shows how to
  406. do just one. Well, that is taken care
  407. of later on in the book. But as that
  408. is what is asked a lot of me at this
  409. point in the book. There isn't much to
  410. actually change. Put a 1 in the box
  411. under the sprite you want to activate.
  412. Oh yeah you just did that already.
  413. Well lets say you want #3 sprite on as
  414. well. Put a 1 there to indicate you
  415. want that one on too. Now the value of
  416. sprite #3 is 8. Got #2 on at value of
  417. 4. #3 on at value of 8. Just like you
  418. did with the rows for the sprite
  419. drawing to data, add up the values of
  420. what you turned on; right that is then
  421. 12. turn two sprites on, being 2 & 3.
  422. You write it as v+21,12. All the way
  423. up to 255, if you are going to run all
  424. 8 sprites.
  425.  
  426. Just about out of lines here, Next
  427. session we will continue with this
  428. program. I suggest you save it as it
  429. will be added to along the way. As we
  430. add more sprites and sizes and
  431. colours.
  432.  
  433. CONTINUED NEXT MONTH..
  434.  
  435. ===
  436.  
  437.